<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="generator" content="ApiGen 2.6.0" />

	<title>No namespace</title>

	<script type="text/javascript" src="resources/combined.js?428767200"></script>
	<script type="text/javascript" src="elementlist.js?4200546020"></script>
	<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?2495970611" />

</head>

<body>
<div id="left">
	<div id="menu">
		<a href="index.html" title="Overview"><span>Overview</span></a>


		<div id="groups">
			<h3>Namespaces</h3>
			<ul>
				<li class="active"><a href="namespace-None.html">None</a>
						</li>
				<li><a href="namespace-PHP.html">PHP</a>
						</li>
			</ul>
		</div>

		<hr />


		<div id="elements">
			<h3>Classes</h3>
			<ul>
				<li><a href="class-DIBase.html">DIBase</a></li>
				<li><a href="class-DIConfig.html">DIConfig</a></li>
				<li><a href="class-DIContext.html">DIContext</a></li>
				<li><a href="class-DIContext_Inject.html">DIContext_Inject</a></li>
				<li><a href="class-DIDBConfig.html" class="invalid">DIDBConfig</a></li>
				<li><a href="class-DIDo.html">DIDo</a></li>
				<li><a href="class-DIEntity.html">DIEntity</a></li>
				<li><a href="class-DIError.html">DIError</a></li>
				<li><a href="class-DIErrorCode.html">DIErrorCode</a></li>
				<li><a href="class-DIEvent.html">DIEvent</a></li>
				<li><a href="class-DIFilterMap.html">DIFilterMap</a></li>
				<li><a href="class-DIFilterUtil.html">DIFilterUtil</a></li>
				<li><a href="class-DIInclude.html">DIInclude</a></li>
				<li><a href="class-DIIncludeConfig.html">DIIncludeConfig</a></li>
				<li><a href="class-DIInject.html">DIInject</a></li>
				<li><a href="class-DILet.html">DILet</a></li>
				<li><a href="class-DIModel.html">DIModel</a></li>
				<li><a href="class-DIModelUtil.html">DIModelUtil</a></li>
				<li><a href="class-DIMySQL.html">DIMySQL</a></li>
				<li><a href="class-DIRoute.html">DIRoute</a></li>
				<li><a href="class-DIRuntime.html">DIRuntime</a></li>
				<li><a href="class-DIRuntime_Imported.html">DIRuntime_Imported</a></li>
				<li><a href="class-DIService.html">DIService</a></li>
				<li><a href="class-DITpl.html">DITpl</a></li>
				<li><a href="class-DIUrlShell.html">DIUrlShell</a></li>
				<li><a href="class-Global1Filter.html">Global1Filter</a></li>
				<li><a href="class-Global2Filter.html">Global2Filter</a></li>
				<li><a href="class-Global3Filter.html">Global3Filter</a></li>
				<li><a href="class-OrekiUtil.html">OrekiUtil</a></li>
				<li><a href="class-TemplateDo.html">TemplateDo</a></li>
				<li><a href="class-Test.html">Test</a></li>
				<li><a href="class-TestDo.html">TestDo</a></li>
				<li><a href="class-TestInject.html">TestInject</a></li>
				<li><a href="class-TesttestDo.html">TesttestDo</a></li>
				<li><a href="class-XxxFilter.html">XxxFilter</a></li>
				<li><a href="class-YyyFilter.html">YyyFilter</a></li>
			</ul>

			<h3>Interfaces</h3>
			<ul>
				<li><a href="class-DIEvent_AppendFuncListener.html">DIEvent_AppendFuncListener</a></li>
				<li><a href="class-DIEvent_AppendVariableListener.html">DIEvent_AppendVariableListener</a></li>
				<li><a href="class-DIEvent_CallFuncListener.html">DIEvent_CallFuncListener</a></li>
				<li><a href="class-DIEvent_CallStaticFuncListener.html">DIEvent_CallStaticFuncListener</a></li>
				<li><a href="class-DIEvent_ClassCallListener.html">DIEvent_ClassCallListener</a></li>
				<li><a href="class-DIEvent_DestroyListener.html">DIEvent_DestroyListener</a></li>
				<li><a href="class-DIEvent_GetStaticVariableListener.html">DIEvent_GetStaticVariableListener</a></li>
				<li><a href="class-DIEvent_GetVariableListener.html">DIEvent_GetVariableListener</a></li>
				<li><a href="class-DIEvent_ObjCallListener.html">DIEvent_ObjCallListener</a></li>
				<li><a href="class-DIEvent_ObjCreateListener.html">DIEvent_ObjCreateListener</a></li>
				<li><a href="class-DIEvent_SetStaticVariableListener.html">DIEvent_SetStaticVariableListener</a></li>
				<li><a href="class-DIEvent_SetVariableListener.html">DIEvent_SetVariableListener</a></li>
				<li><a href="class-DIEventListener.html">DIEventListener</a></li>
				<li><a href="class-DIFilter.html">DIFilter</a></li>
				<li><a href="class-DIModelTemplate.html">DIModelTemplate</a></li>
			</ul>


			<h3>Exceptions</h3>
			<ul>
				<li><a href="class-DIException.html">DIException</a></li>
			</ul>


			<h3>Functions</h3>
			<ul>
				<li><a href="function-__autoload.html">__autoload</a></li>
				<li><a href="function-arg.html">arg</a></li>
				<li><a href="function-array_unset.html">array_unset</a></li>
				<li><a href="function-bt_page.html">bt_page</a></li>
				<li><a href="function-bt_shell_page.html">bt_shell_page</a></li>
				<li><a href="function-component_exist.html">component_exist</a></li>
				<li><a href="function-create_class.html">create_class</a></li>
				<li><a href="function-dump.html">dump</a></li>
				<li><a href="function-getip.html">getip</a></li>
				<li><a href="function-import.html">import</a></li>
				<li><a href="function-inject.html">inject</a></li>
				<li><a href="function-inject_dymic.html">inject_dymic</a></li>
				<li><a href="function-inject_full.html">inject_full</a></li>
				<li><a href="function-inject_func.html">inject_func</a></li>
				<li><a href="function-injectObjFunc.html">injectObjFunc</a></li>
				<li><a href="function-invoke_func.html">invoke_func</a></li>
				<li><a href="function-invoke_method.html">invoke_method</a></li>
				<li><a href="function-let.html">let</a></li>
				<li><a href="function-let_exists.html">let_exists</a></li>
				<li><a href="function-params_to_str.html">params_to_str</a></li>
				<li><a href="function-putjson.html">putjson</a></li>
				<li><a href="function-putjsonp.html">putjsonp</a></li>
				<li><a href="function-redirect.html">redirect</a></li>
				<li><a href="function-ref_arr.html">ref_arr</a></li>
				<li><a href="function-session.html">session</a></li>
				<li><a href="function-session_exists.html">session_exists</a></li>
				<li><a href="function-session_remove.html">session_remove</a></li>
				<li><a href="function-url.html">url</a></li>
			</ul>
		</div>
	</div>
</div>

<div id="splitter"></div>

<div id="right">
<div id="rightInner">
	<form id="search">
		<input type="hidden" name="cx" value="" />
		<input type="hidden" name="ie" value="UTF-8" />
		<input type="text" name="q" class="text" />
		<input type="submit" value="Search" />
	</form>

	<div id="navigation">
		<ul>
			<li>
				<a href="index.html" title="Overview"><span>Overview</span></a>
			</li>
			<li class="active">
<span>Namespace</span>			</li>
			<li>
<span>Class</span>			</li>
		</ul>
		<ul>
			<li>
				<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
			</li>
		</ul>
		<ul>
		</ul>
	</div>

<div id="content" class="namespace">
	<h1>No namespace</h1>



<table class="summary" id="classes">
<caption>Classes summary</caption>
<tr>
	<td class="name"><a href="class-DIBase.html">DIBase</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。
<!-- by Texy2! --></td>
</tr>
<tr>
	<td class="name"><a href="class-DIConfig.html">DIConfig</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIContext.html">DIContext</a></td>
	<td>系统上下文 一般是针对应用执行状态进行开发的。
如：上次执行位置，本次执行位置，下次执行位置，历时执行记录等等。</td>
</tr>
<tr>
	<td class="name"><a href="class-DIContext_Inject.html">DIContext_Inject</a></td>
	<td>与注入相关的上下文</td>
</tr>
<tr>
	<td class="name"><a href="class-DIDBConfig.html" class="invalid">DIDBConfig</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIDo.html">DIDo</a></td>
	<td>DIDo抽象控制器，从ActionInvoker的<code>action</code>更名为现在的<code>do</code>
将和注入增强DIInject协作，完整监视和导向Do方法的行为
继承DIDo后，子类命名规则为XxxDo。</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEntity.html">DIEntity</a></td>
	<td>不需要抽象成数据实体的基础类，与model不同。
通过合理的设计模式及一定的算法可以实现复杂的业务逻辑</td>
</tr>
<tr>
	<td class="name"><a href="class-DIError.html">DIError</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIErrorCode.html">DIErrorCode</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent.html">DIEvent</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIFilterMap.html">DIFilterMap</a></td>
	<td>过滤器分为全局过滤器和特定作用点过滤器
只对Do-Request有效，对Let-Request无效</td>
</tr>
<tr>
	<td class="name"><a href="class-DIFilterUtil.html">DIFilterUtil</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。</td>
</tr>
<tr>
	<td class="name"><a href="class-DIInclude.html">DIInclude</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIIncludeConfig.html">DIIncludeConfig</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIInject.html">DIInject</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。</td>
</tr>
<tr>
	<td class="name"><a href="class-DILet.html">DILet</a></td>
	<td>小程序段相关
不需要放置在函数体或类中的脚本，可以放置在具有一定意义命名的php文件中</td>
</tr>
<tr>
	<td class="name"><a href="class-DIModel.html">DIModel</a></td>
	<td>套用模板的抽象模型
会根据DIDBConfig::$driver来调用所需的数据库驱动，并套用具体的数据库操作过程
XxxxModel类只需要继承此类即可使用数据库操作。</td>
</tr>
<tr>
	<td class="name"><a href="class-DIModelUtil.html">DIModelUtil</a></td>
	<td>存放Model层的便捷实用方法和超级方法</td>
</tr>
<tr>
	<td class="name"><a href="class-DIMySQL.html">DIMySQL</a></td>
	<td>具体的MySQL驱动</td>
</tr>
<tr>
	<td class="name"><a href="class-DIRoute.html">DIRoute</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIRuntime.html">DIRuntime</a></td>
	<td>系统运行时，一般是针对库支持开发的。
如import操作会触发索引添加</td>
</tr>
<tr>
	<td class="name"><a href="class-DIRuntime_Imported.html">DIRuntime_Imported</a></td>
	<td>记录import()导入的文件路径</td>
</tr>
<tr>
	<td class="name"><a href="class-DIService.html">DIService</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。</td>
</tr>
<tr>
	<td class="name"><a href="class-DITpl.html">DITpl</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。</td>
</tr>
<tr>
	<td class="name"><a href="class-DIUrlShell.html">DIUrlShell</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-Global1Filter.html">Global1Filter</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-Global2Filter.html">Global2Filter</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-Global3Filter.html">Global3Filter</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-OrekiUtil.html">OrekiUtil</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-TemplateDo.html">TemplateDo</a></td>
	<td>可用于页面父模板嵌套的全局模板类</td>
</tr>
<tr>
	<td class="name"><a href="class-Test.html">Test</a></td>
	<td>不需要抽象成数据实体的基础类，与model不同。
通过合理的设计模式及一定的算法可以实现复杂的业务逻辑</td>
</tr>
<tr>
	<td class="name"><a href="class-TestDo.html">TestDo</a></td>
	<td>DIDo抽象控制器，从ActionInvoker的<code>action</code>更名为现在的<code>do</code>
将和注入增强DIInject协作，完整监视和导向Do方法的行为
继承DIDo后，子类命名规则为XxxDo。</td>
</tr>
<tr>
	<td class="name"><a href="class-TestInject.html">TestInject</a></td>
	<td>核心基类，为继承它的子类预留EventListener扩展的实现模板槽
例如：DIDo继承本类后，可以重写__call()方法，
检测DIDo子类所实现的DIEventListener接口，
动态地套用这类接口的模板方法。</td>
</tr>
<tr>
	<td class="name"><a href="class-TesttestDo.html">TesttestDo</a></td>
	<td>DIDo抽象控制器，从ActionInvoker的<code>action</code>更名为现在的<code>do</code>
将和注入增强DIInject协作，完整监视和导向Do方法的行为
继承DIDo后，子类命名规则为XxxDo。</td>
</tr>
<tr>
	<td class="name"><a href="class-XxxFilter.html">XxxFilter</a></td>
	<td>名为“Xxx”的过滤器，其作用域详见filtermap.php的配置</td>
</tr>
<tr>
	<td class="name"><a href="class-YyyFilter.html">YyyFilter</a></td>
	<td></td>
</tr>
</table>

<table class="summary" id="interfaces">
<caption>Interfaces summary</caption>
<tr>
	<td class="name"><a href="class-DIEvent_AppendFuncListener.html">DIEvent_AppendFuncListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_AppendVariableListener.html">DIEvent_AppendVariableListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_CallFuncListener.html">DIEvent_CallFuncListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_CallStaticFuncListener.html">DIEvent_CallStaticFuncListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_ClassCallListener.html">DIEvent_ClassCallListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_DestroyListener.html">DIEvent_DestroyListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_GetStaticVariableListener.html">DIEvent_GetStaticVariableListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_GetVariableListener.html">DIEvent_GetVariableListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_ObjCallListener.html">DIEvent_ObjCallListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_ObjCreateListener.html">DIEvent_ObjCreateListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_SetStaticVariableListener.html">DIEvent_SetStaticVariableListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEvent_SetVariableListener.html">DIEvent_SetVariableListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIEventListener.html">DIEventListener</a></td>
	<td>监听器/观察者 由前置增强、中置增强、后置增强构成。
其中，前置增强、后置增强的执行结果分别保存在DIBase子类的$_before、$_after属性，类型为array
中置增强不需要外置的存储器（如$_before、$_after）。
要使用中置增强，只需要在为DIBase的非抽象子类的方法参数传入callback即可，
在具体的子类方法中，可以手动获取到这些callback的返回值，
这也侧面说明，中置增强的返回值可以直接在DIBase非抽象子类方法体中获取。
DIEventListener子接口命名规范：严格依照 DIEvent_XxxxYyyZzzListener</td>
</tr>
<tr>
	<td class="name"><a href="class-DIFilter.html">DIFilter</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="class-DIModelTemplate.html">DIModelTemplate</a></td>
	<td></td>
</tr>
</table>


<table class="summary" id="exceptions">
<caption>Exceptions summary</caption>
<tr>
	<td class="name"><a href="class-DIException.html">DIException</a></td>
	<td>核心出错异常类
可以根据DEBUG模式的启用情况，给出常规处理方式。
处理方式：覆盖__construct方法。</td>
</tr>
</table>


<table class="summary" id="functions">
<caption>Functions summary</caption>
<tr>
	<td class="name"><a href="function-__autoload.html">__autoload</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-arg.html">arg</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-array_unset.html">array_unset</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-bt_page.html">bt_page</a></td>
	<td>分页快速生成(适用于GET型的URL)</td>
</tr>
<tr>
	<td class="name"><a href="function-bt_shell_page.html">bt_shell_page</a></td>
	<td>分页快速生成(适用于shell型的URL)</td>
</tr>
<tr>
	<td class="name"><a href="function-component_exist.html">component_exist</a></td>
	<td>检测组件的支持文件是否存在 支持的组件有：
DO/MODEL/FILTER/INJECT/SERVICE ENTITY</td>
</tr>
<tr>
	<td class="name"><a href="function-create_class.html">create_class</a></td>
	<td>创建一个类</td>
</tr>
<tr>
	<td class="name"><a href="function-dump.html">dump</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-getip.html">getip</a></td>
	<td>取得访问IP</td>
</tr>
<tr>
	<td class="name"><a href="function-import.html">import</a></td>
	<td>TODO 仿照java的import，导入ext目录的php文件。
将按照递归顺序，从最深目录开始包含
当包含的是单个文件时，还可以获得require语句的返回值，视所包含文件的return语句而定。</td>
</tr>
<tr>
	<td class="name"><a href="function-inject.html">inject</a></td>
	<td>向对象实例方法注入前置或后置代码，只针对某一端注入</td>
</tr>
<tr>
	<td class="name"><a href="function-inject_dymic.html">inject_dymic</a></td>
	<td>实现动态注入或批量注入 注：需求尚未明确</td>
</tr>
<tr>
	<td class="name"><a href="function-inject_full.html">inject_full</a></td>
	<td>向对象实例方法注入前置或后置代码，可以同时对前后注入</td>
</tr>
<tr>
	<td class="name"><a href="function-inject_func.html">inject_func</a></td>
	<td>向游离的函数注入代码 注：技术可行性较低</td>
</tr>
<tr>
	<td class="name"><a href="function-injectObjFunc.html">injectObjFunc</a></td>
	<td>向对象实例方法注入前置或后置代码</td>
</tr>
<tr>
	<td class="name"><a href="function-invoke_func.html">invoke_func</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-invoke_method.html">invoke_method</a></td>
	<td>调用对象的方法</td>
</tr>
<tr>
	<td class="name"><a href="function-let.html">let</a></td>
	<td>&lt;pre&gt;
let(path,code)持久化保存临时代码，可用于动态生成插件
let(path)执行小程序 let(path,null)永久删除小程序 &lt;/pre&gt;</td>
</tr>
<tr>
	<td class="name"><a href="function-let_exists.html">let_exists</a></td>
	<td>检测小程序是否存在</td>
</tr>
<tr>
	<td class="name"><a href="function-params_to_str.html">params_to_str</a></td>
	<td>函数的参数表转为字符串化</td>
</tr>
<tr>
	<td class="name"><a href="function-putjson.html">putjson</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-putjsonp.html">putjsonp</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-redirect.html">redirect</a></td>
	<td>首选跳转XxxDO::func()，否则视为/index.php的相对路径，找不到时输出404页
也可以强制用第二个参数将shell指定为文件路径</td>
</tr>
<tr>
	<td class="name"><a href="function-ref_arr.html">ref_arr</a></td>
	<td>解决call_user_func_array()和new ReflectionMethod($obj, $method)
参数调用错误的问题。
使用：将需要传入的数组$arr用该方法包裹即可，如ref_arr($arr)</td>
</tr>
<tr>
	<td class="name"><a href="function-session.html">session</a></td>
	<td>取本应用的会话或设置会话 session($name)取会话；session($name,
$value)设置会话；session()取所有会话。
按名称存取会话时，将只会取出名称被指定前缀的会话。</td>
</tr>
<tr>
	<td class="name"><a href="function-session_exists.html">session_exists</a></td>
	<td></td>
</tr>
<tr>
	<td class="name"><a href="function-session_remove.html">session_remove</a></td>
	<td>删除某个key的会话(注意第二个参数是严格模式开关)</td>
</tr>
<tr>
	<td class="name"><a href="function-url.html">url</a></td>
	<td>生成URL</td>
</tr>
</table>
</div>

	<div id="footer">
		 API documentation generated by <a href="http://apigen.org">ApiGen 2.6.0</a>
	</div>
</div>
</div>
</body>
</html>
